<?php

include_once('openSession.php');
include_once('RobotRequest.php');
include_once('UserAttribute.php');
include_once('openSessionResponse.php');
include_once('RobotResponse.php');
include_once('RobotCommand.php');
include_once('closeSession.php');
include_once('closeSessionResponse.php');
include_once('deliver.php');
include_once('deliverResponse.php');

class RobotServiceEx extends \SoapClient
{

    /**
     * @var array $classmap The defined classes
     * @access private
     */
    private static $classmap = array(
      'openSession' => '\openSession',
      'RobotRequest' => '\RobotRequest',
      'UserAttribute' => '\UserAttribute',
      'openSessionResponse' => '\openSessionResponse',
      'RobotResponse' => '\RobotResponse',
      'RobotCommand' => '\RobotCommand',
      'closeSession' => '\closeSession',
      'closeSessionResponse' => '\closeSessionResponse',
      'deliver' => '\deliver',
      'deliverResponse' => '\deliverResponse');

    /**
     * @param array $options A array of config values
     * @param string $wsdl The wsdl file to use
     * @access public
     */
    public function __construct(array $options = array(), $wsdl = 'http://gxdw.demo.uairobot.com/robot/app/gxdw/ws/RobotServiceEx?wsdl')
    {
      foreach (self::$classmap as $key => $value) {
    if (!isset($options['classmap'][$key])) {
      $options['classmap'][$key] = $value;
    }
  }
  
  parent::__construct($wsdl, $options);
    }

    /**
     * @param openSession $parameters
     * @access public
     * @return openSessionResponse
     */
    public function openSession(openSession $parameters)
    {
      return $this->__soapCall('openSession', array($parameters));
    }

    /**
     * @param closeSession $parameters
     * @access public
     * @return closeSessionResponse
     */
    public function closeSession(closeSession $parameters)
    {
      return $this->__soapCall('closeSession', array($parameters));
    }

    /**
     * @param deliver $parameters
     * @access public
     * @return deliverResponse
     */
    public function deliver(deliver $parameters)
    {
      return $this->__soapCall('deliver', array($parameters));
    }

}
